The concept of virtual computing is based on software that allows a user to run multiple operating systems simultaneously on one physical computing device. As a result, application programs written for one platform can be run on a different type of computing device. Thus, for example, Microsoft Corporation's “Virtual PC for Mac” software is a Macintosh application program that emulates a Windows®-based personal computer and allows Windows®-based programs to be run under the Macintosh Operating system and underlying hardware. Running with the device's regular operating system is often referred to as running in host mode, while running with the software that performs the emulation is often referred to as running in guest mode.
However, a significant problem with virtual computing is the noticeably slow performance that exists when emulating one platform on another. Contemporary emulation solutions have heretofore depended on the manufacturer of the computing device to provide interfaces in the host operating system code to facilitate virtual computing. In a number of situations, these interfaces are responsible for the slow performance, (the system may take many such exceptions per second that require usage of the interfaces, resulting in the system being anywhere from three to twenty times too slow to meet performance objectives), but there is no straightforward way for the manufacturer to improve the interfaces. What is needed when running virtual machines is a way to lessen the dependency on the device manufacturer's host operating system code while achieving significant performance gains in the guest operating system.